由面试引发的思考:BS与CS究竟是何物

您所在的位置:网站首页 cs是什么缩写 服务 由面试引发的思考:BS与CS究竟是何物

由面试引发的思考:BS与CS究竟是何物

2023-04-14 16:26| 来源: 网络整理| 查看: 265

由⾯试引发的思考:

BS

CS

究竟是何物

⼀、现状说明:

就在这⾦三银四的求职黄⾦时期,我有幸作为公司的独⽴技术⾯试官,拥有最终决定录⽤权,在倍受上级领导的充分信任下,我也向上级保

证,⼀定要为公司找到合适的⼈才,就在我满怀信⼼的情况下⾯试了⼀个⼜⼀个的求职者,发现了⼤多数求职者共同的问题,⼀是:眼⾼⼿

低,即⼯作年限虽长,但受⼯作内容及个⼈原因,基础知识薄弱,很多技术使⽤了

N

年,却不明⽩其原理,可以说是:只知道这样⽤,但为

什么要这样⽤,能否有别的解决⽅案从来都没有去考虑过或总结过,知识的⼴度就更不⽤说了,薪资期望却都很⾼。⼆是:

B/S

C/S

分不

清,认为

B/S

就是做与⽹页有关的东西,可以涉及到的技术点多,如:

JS\CSS\HTML\C#\MVC

,只想从事

B/S

⽅向的⼯作内容,觉得其热门

与流⾏,⽽认为

C/S

就是做客户端桌⾯程序,如:

WINFORM,WPF

;觉得其太简单了或没有发展前景,那么实事是这样吗?本⽂主要就是来

谈谈

B/S

C/S

究竟为何物,它们之间到底有什么异同点。

⼆、

B/S

       B/S

即:

Browser

Server,

中⽂意思:浏览器端与服务器端架构,这种架构是从⽤户层⾯来划分的,

Browser

浏览器,其实也是⼀种

Client

客户端,只是这个客户端不需要⼤家去安装什么应⽤程序,只需在浏览器上通过

HTTP

请求服务器端相关的资源(⽹页资源),客户

Browser

浏览器就能进⾏增删改查。不依赖⽤户的电脑操作系统环境,只与浏览器环境有关,当然由于⽹页复杂性,⼜延伸出⽹页前端技

术与后端技术,前端技术指的是在浏览器上编程的技术,⽐如:

JS,HTML,CSS

,这些前端技术是运⾏在客户端

Browser

浏览器上的,⽽并⾮

在服务器端,如果不信,可以测试⼀下,当你的页⾯中包含

JS

脚本时,若将浏览器属性中的禁⽤

JS

启⽤,你会发现页⾯中那些依赖

JS

的技

术都没办法使⽤。后端技术指的是运⾏在服务器上编程的技术(也就是

Server

端),⽐如:

C#,JAVA

,这些编程技术与我们通常所理解的

C#

编程,

JAVA

编程是⼀样的,只是这⾥需要考虑到基于

HTTP

协议的编程。架构图如下所⽰:

三、

C/S

       C/S

即:

Client

Server 

,中⽂意思:客户端与服务器端架构,这种架构也是从⽤户层⾯(也可以是物理层⾯)来划分的,这⾥的客户端

⼀般泛指客户端应⽤程序

EXE

,程序需要先安装后,才能运⾏在⽤户的电脑上,对⽤户的电脑操作系统环境依赖较⼤,⽐如:若想运⾏基于

WINFORM

开发的

EXE

程序,必需要先在电脑上安装

.NET FRAMEWORK

组件,否则⽆法正常运⾏。

Server

端这⾥是⼀个⾮必要的部份,若

客户端是⼀个单机应⽤程序,⽆需数据库或其它分布式技术,那么

Server

端是可以省略的,若客户端需要数据库或其它分布式技术,那么这

⾥的

Server

端指的是数据库服务器端或其它分布式技术(

WEB API,WEB SERVICE

等)所在的服务器端。架构图如下所⽰:

四、

B/S

C/S

异同点

       B/S

C/S

的共同点从英⽂缩写都能看得出来,都有

S

,这个

S

指的是服务器端

(

应⽤程序后端

)

,服务器端只是⼀个统称,具体细分的话,

有:应⽤程序服务器端、数据库服务器端、缓存服务器端、⽂件服务器端等,不同点同样也可从英⽂缩写中看得出,那就是

B

C

的区别,

从前⾯分别介绍与

B/S

C/S

得知,

B

指的是浏览器端,

C

指的是客户端,但是如果从⼴义的⾓度来说,

B

同样也是⼀种客户端,浏览器同样

需要安装,不安装同样

B/S

结构也⼀样不能⼯作,只是⼀般浏览器都默认安装罢了,从架构的层⾯来讲,

B/S

C/S

的唯⼀区别就是展现层不

同,

B/S

可能需要懂⽹页前端技术

,C/S

可能需要懂

WINFORM,WPF

等应⽤前端技术,其余全部都相同,如果单纯讲从事

C#

JAVA

后端开

发,那么

B/S

C/S

就是⼀样的,都是利⽤

C#

JAVA

之类的动态语⾔为展现层提供资源或对资源进⾏相关的处理。如果⼀个公司分⼯明确的

话,那么

C#

JAVA

⼯程师所应该做的事情就是后端开发,与前端⽆关,也就没有必要强调

B/S

C/S

了,当然懂点前端技术更好,可以为⾃

⼰的技术锦上添花,但如果要让公司为你懂得前端技术⽽买单(提⾼⼯资待遇)【全栈⼯程师除外】那多半有点⼀厢情愿了,换作我是⽼

板,我肯定更愿意找专业的前端与专业的后端,这种前后端都略懂,但都不够专业的,还不如不要。

B/S

C/S

的统⼀架构如下图⽰:

为了让新⼿们能够理解上述

B/S

C/S

合⼆为⼀的架构图,我写了⼀个⾮常简单的

DEMO

,以体现

B/S

C/S

的共同点与不同点,代码如下:

Server

端:

namespace Demo.Server

{

    public static class Logic

    {

        public static int Add(int a, int b)

        {

            return a + b;

        }

    }

}

Browser

端(后端

-

属于

Server

端,但有别于上⾯的单独

Server

层,这⾥需要引⽤

Server

层):

namespace Demo.Browser

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

          TextBox3.Text=Demo.Server.Logic.Add(int.Parse(TextBox1.Text), int.Parse(TextBox2.Text)).ToString();

        }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3